CloudKit CKQuery
要从数据库中选择记录,需使用 CKQuery
。CKQuery
描述了如何找到所有特定类型的记录,这些记录符合某些条件。
CloudKit 仅支持可用 NSPredicate
函数的子集。这些包括数学比较,一些字符串和集合操作,如“字段匹配列表中的项目之一”,以及特殊距离函数。CloudKit 支持的函数及其使用方法的详细列表可以在 CKQuery 类参考中找到。
Demo
出处:《CloudKit Tutorial: Getting Started | Kodeco》
@objc func refresh(_ completion: @escaping (Error?) -> Void) {
// 1.
let predicate = NSPredicate(value: true)
// 2.
let query = CKQuery(recordType: "Establishment", predicate: predicate)
establishments(forQuery: query, completion)
}
private func establishments(forQuery query: CKQuery,
_ completion: @escaping (Error?) -> Void) {
publicDB.perform(query,
inZoneWith: CKRecordZone.default().zoneID) { [weak self] results, error in
guard let self = self else { return }
if let error = error {
DispatchQueue.main.async {
completion(error)
}
return
}
guard let results = results else { return }
self.establishments = results.compactMap {
Establishment(record: $0, database: self.publicDB)
}
DispatchQueue.main.async {
completion(nil)
}
}
}
- 创建了一个为
true
的谓词 - 创建一个 CKQuery,指定是对什么类型的查询
- 在 establishments 方法中,执行具体的查询操作
本文作者:Maeiee
本文链接:CloudKit CKQuery
版权声明:如无特别声明,本文即为原创文章,版权归 Maeiee 所有,未经允许不得转载!
喜欢我文章的朋友请随缘打赏,鼓励我创作更多更好的作品!